【天眼】自定义日志,让采集更弹性
自定义日志是什么?
天眼平台支持应用两种日志采集上报场景:
一种是通过集成天眼探针采集上报应用的性能、异常和行为日志数据,并在平台上提供丰富的日志查询分析功能,但这类日志数据的结构相对规范和固定。
另一种场景的日志数据的结构和内容没有限制,完全由应用自行约定,只需将日志写入约定的日志文件,就可以借助天眼的日志收集器(FluentBit)把这些日志数据收集上报到天眼平台并提供查询分析,这就是自定义日志。
自定义日志管理
天眼平台提供针对应用自定义日志的收集上报和查询管理能力。应用自定义日志实现接入天眼平台包括以下两个环节:
自定义日志采集上报
日志查询&告警
自定义日志采集上报
应用自定义日志上报天眼平台的模式
应用自定义日志采集上报实现
应用自定义日志要上报到天眼平台,需要先规划定义好日志结构及日志文件存储地址,再到天眼平台创建配置产品/应用,并获得天眼日志收集器FluentBit的配置参数,用以部署好天眼日志收集器FluentBit,然后应用程序运行时通过日志模块输出运行日志到日志文件,通过FluentBit从日志文件收集日志上报到天眼平台:
1、定义日志结构及日志文件存储路径
2、在天眼创建及配置产品/应用,获取日志收集器配置参数
3、部署日志收集器FluentBit
4、应用运行写入日志文件,FluentBit收集上报天眼
1、定义日志结构及日志文件存储路径
应用结合自身业务场景和需求,定义日志数据的结构和格式,日志格式建议:JSON,一行为一条日志,同时定义好日志文件存放路径和命名规则。
日志数据结构定义需要提供给天眼平台,包括字段英文名(JSON里的Key_name)、字段中文名、字段类型、排序等。用于在天眼平台的日志管理里进行属性映射,方便用户在日志管理里查询分析日志。
实例日志文件:/logs/20210412.log
{"log_time":"2020-12-01 17:06:41","log_level":"info","app_uid":"hmzx","app_tcode":"hmzx","category":"sdk.api","log_type":"business","log_content":"{\"url\":\"https:\\\/\\\/app-ykj-test.myfuwu.com.cn\\\/m\\\/Organization\\\/api\\\/get-auth-projects\"}","app_env":"test","app_vid":"834845f36322a313e825ac10b0db4260_1609404744","log_tag":"","app_code":"rental","log_trace":"in \/webser\/www\/eam\/lib\/sdk\/api\/BaseApi.php:185\n in \/webser\/www\/eam\/lib\/sdk\/api\/BaseApi.php:165\n in \/webser\/www\/eam\/lib\/sdk\/bms\/auth\/helper\/ProjectAuthHelper.php:29\n in \/webser\/www\/eam\/rental\/protected\/services\/user\/AdminUserService.php:110\n in \/webser\/www\/eam\/rental\/protected\/domain\/presenters\/workflow\/WorkflowInstancePresenter.php:655\n in \/webser\/www\/eam\/rental\/protected\/domain\/presenters\/workflow\/WorkflowInstancePresenter.php:586\n in \/webser\/www\/eam\/rental\/protected\/domain\/presenters\/workflow\/WorkflowInstancePresenter.php:168"}
{"log_time":"2020-12-01 17:06:41","log_level":"info","app_uid":"hmzx","app_tcode":"hmzx","category":"sdk.api","log_type":"business","log_content":"{\"url\":\"https:\\\/\\\/app-ykj-test.myfuwu.com.cn\\\/m\\\/Organization\\\/api\\\/get-auth-projects\",\"params\":{\"tenant_code\":\"hmzx\",\"user_id\":\"22b11db4-e907-4f1f-8835-b9daab6e1f23\",\"project_mode\":\"all\"}}","app_env":"test","app_vid":"834845f36322a313e825ac10b0db4260_1609404744","log_tag":"","app_code":"rental","log_trace":"in \/webser\/www\/eam\/lib\/sdk\/api\/BaseApi.php:205\n in \/webser\/www\/eam\/lib\/sdk\/api\/BaseApi.php:165\n in \/webser\/www\/eam\/lib\/sdk\/bms\/auth\/helper\/ProjectAuthHelper.php:29\n in \/webser\/www\/eam\/rental\/protected\/services\/user\/AdminUserService.php:110\n in \/webser\/www\/eam\/rental\/protected\/domain\/presenters\/workflow\/WorkflowInstancePresenter.php:655\n in \/webser\/www\/eam\/rental\/protected\/domain\/presenters\/workflow\/WorkflowInstancePresenter.php:586\n in \/webser\/www\/eam\/rental\/protected\/domain\/presenters\/workflow\/WorkflowInstancePresenter.php:168"}
2、在天眼创建并配置产品/应用,获取日志收集器配置参数
应用的自定义日志接入天眼平台,需要在天眼平台开通账号主体,创建团队、产品及对应的应用,同时还需配置日志服务,提供日志收集器FluentBit的配置信息。
说明:因天眼平台暂时未提供对外的日志服务配置定义功能,因此该步骤的工作需要联系天眼平台成员协助处理。
3、部署日志收集器FluentBit
本步骤在应用的运行环境里部署天眼日志收集器FluentBit,在windows环境和容器部署的存在差异,具体介绍如下:
容器:
docker run -v /logs:/logs --name=fast-fluent-bit \
-e FAST_SERVER=https://fast-open.mypaas.com.cn \
-e FAST_ACCESS_KEY_ID=天眼服务AK id \
-e FAST_ACCESS_KEY_SECRET=天眼服务AK secret \
-e FAST_PRODUCT_CODE=天眼产品编码 \
-e FAST_APP_CODE=天眼应用编码 \
-e FAST_LOG_NAME=天眼日志名称 \
-e FAST_TAIL_PATH=/logs/*.log \
-ti \
docker-prod-registry.cn-hangzhou.cr.aliyuncs.com/fast/fluentbit:0.3.1
(版本号可能有更新,部署前建议与天眼管理员确认)
Windows:
1. 解压erp-td-agent-bit
2. 以管理员身份运行“注册服务.bat”(开发模式可运行“start.bat”),启动日志收集器
关键配置项(conf/fluent-bit.conf):
[INPUT]
name tail
parser json
path {配置日志文件路径,如:/logs/*.log}
exit_on_eof off
db {offset保存路径,如:./tail.db}
[OUTPUT]
name fastout
match *
server https://fast-open.mypaas.com.cn
access_key_id 天眼服务AK id
access_key_secret 天眼服务AK secret
product_code 天眼产品编码
app_code 天眼应用编码
log_name 天眼日志名称
4、应用运行写入日志文件,FluentBit收集上报天眼
应用程序通过日志模块输出运行日志到日志文件,FluentBit从日志文件收集自定义日志数据上报天眼平台,完成自定义日志数据的采集上报过程。
日志查询&告警
在日志管理模块,您可以查询分析应用上报的自定义日志数据。
前提条件:
· 应用已采集上报了自定义日志数据,详情请参见自定义日志采集上报。
查询操作:
1. 登录天眼平台,选择日志管理模块(如下图所示)。
2. 在顶部导航栏选择 产品/应用。
3. 在页面左上角选择日志名称。
4. 您可以在页面上方选择设置各种查询条件。
5. 您还可以在录入框里输入内容进行关键字检索。
6. 在下图所示的页面里查看结果和进行进一步的查询分析。
说明:选择产品/应用、日志名称时,系统自动触发查询刷新列表数据。选择设置其他查询条件时,需要点击【查询】按钮触发刷新列表数据。
告警
应用的自定义日志上报到天眼,除了可以天眼平台查询分析日志外,还可以在平台上基于自定义日志设置告警。
说明:基于应用自定义日志的告警设置功能暂时未对外开放,如需添加告警请与天眼团队成员联系。